As server virtualization becomes more widespread, network operators have begun turning to the software-defined networking (SDN) approach to address the unique challenges that come along with virtualization such as greatly increased network complexity, the increased capacity to scale upwards, and the desire to ensure consistent policy enforcement across a wide geographical area. According to SDN principles, the control plane and data plane seen in traditional networking equipment are decoupled. A centralized controller performs the control operations and configures multiple SDN switches to perform data forwarding functions through a communications protocol such as OpenFlow.
According to some implementations, through the SDN controller's configuration, SDN switches store flow processing tables that indicate, for packets belonging to a defined flow, what actions should be taken such as dropping, modifying, or forwarding the packet. SDN switches may also perform some monitoring of traffic flows such as, for example, counting a total number of bytes and packets forwarded for each defined flow. These values are typically also stored in the switch's flow processing table as part of the rule for the associated flow.